import axios from "axios"
import Nprogress from "nprogress"
import 'nprogress/nprogress.css'

//封装axios，创建心的axios实例
const service = axios.create({
    baseURL: '/mock',//所有的接口路径共有的部分
    //如果这个路径里面没有服务器的地址，默认是往本地服务器8080发送
    timeout: 20000,
});

service.interceptors.request.use(
    //请求拦截器成功的回调
    (config) => {
        //config 请求报文
        //一半在拦截器中，可以做两件事，第一件：修改报文，第二件：添加功能
        //请求拦截器，成功的回调一定要返回报文

        //开始拦截
        Nprogress.start()

        return config
        //请求拦截器的回调一般不写  () = > {}
    },
);

service.interceptors.response.use(
    (response) => {
        Nprogress.done();
        //返回的响应不再需要从data属性挡住拿数据
        return response.data
    },
    (error) => {
        Nprogress.done()
        //统一处理请求错误，具体请求也可以选择处理或者不处理
        alert('axios请求失败'+ error.message)
        //后期你还要不要处理，自己选择
        //如果后期还想要处理，那么需要把这个错误信息继续往下传
        //return Promise.reject(error)   Promise.reject(new Error('自定义错误信息'))
        return new Promise(()=>{})
        
    }
)

export default service